package doublePointer;

public class ArrayMerge {

    /**
     * 给你两个有序整数数组 nums1 和 nums2，请你将 nums2 合并到 nums1 中，使 nums1 成为一个有序数组。
     *
     * 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n，这样它就有足够的空间保存来自 nums2 的元素。
     *
     * @param args
     */
    public static void main(String[] args) {

    }
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int nums1_index = m - 1;
        int nums2_index = n - 1;
        int index = m + n - 1;
        while (nums1_index >= 0 && nums2_index >= 0){
            if (nums1[nums1_index] > nums2[nums2_index]){
                nums1[index] = nums1[nums1_index];
                index--;
                nums1_index--;
            } else {
                nums1[index] = nums2[nums2_index];
                index--;
                nums2_index--;
            }
        }
        if (nums2_index >= 0){
            for (int i = nums2_index; i >= 0; i--){
                nums1[index] = nums2[i];
                index--;
            }
        }
    }
}
